1. Technical Field
The present disclosure relates to lossless data compression, and more particularly to a variable-length decoder, a video decoder and an image display system having the same and a method of variable-length decoding.
2. Discussion of the Related Art
Typically, a lossless data compressing technology reduces data redundancy. When using a lossless data compressing technology, original data is encoded without any data loss to generate compressed data. The compressed data may be decoded to restore the original data. Lossless compression or lossless coding is referred to as entropy coding. Entropy coding includes fixed-length and variable-length encoding methods.
The variable-length encoding method is widely used in video compression such as in the moving picture experts group (MPEG) and H.261 standards. The variable-length decoding method may be classified into two groups, a tree searching algorithm and a lookup table algorithm.
According to the tree searching algorithm, a code tree is used to determine a codeword and a length of the codeword. The tree searching algorithm has a relatively slow decoding speed.
According to the lookup table algorithm, each codeword corresponds to an entry in the lookup table. The codeword matching the decoded data is searched in the lookup table, and a symbol corresponding to the codeword is determined. One symbol may be generated per clock cycle. The decoding speed of the lookup table algorithm, as compared with the tree searching algorithm, is much faster.
Mobile devices such as cellular phones, personal digital assistants (PDAs) and portable media players (PMPs) are widely used. Such devices need to have low power consumption because battery capacity is limited. Typically, these devices have a high clock speed to enhance their performance, thereby increasing power consumption.
FIG. 1 is a block diagram illustrating a conventional variable-length decoder that is disclosed in U.S. Pat. No. 6,653,955.
In FIG. 1, a variable-length decoder 100 may output two symbols per clock cycle. A partial code space decoder 112 may output one symbol and an entire code space decoder 152 may output the other symbol. However, the variable-length decoder 100 cannot always output two symbols per clock cycle. The variable-length decoder 100 has an irregular data flow and cannot output a uniform number of symbols per clock cycle.
Thus, there is a need for a variable-length decoder which can uniformly output an increased number of symbols to improve decoding speed.